class TipoCambio < ActiveRecord::Base
	belongs_to :moneda	
	
	def self.comprar(monto_en_soles, moneda, fecha)
		if moneda.id == 1 #soles
			monto_en_soles
		else
			@cambio = find(:first, :conditions=>['fecha = ? and moneda_id=?', fecha, moneda.id])
			if @cambio == nil
				raise "No existe el tipo de '#{moneda.nombre}' para la fecha '#{fecha}'"
			else
				monto_en_soles/@cambio.precio_compra
			end
		end
	end
	
	def self.vender(monto, moneda, fecha)
		if moneda.id == 1 #soles
			monto
		else
			@cambio = find(:first, :conditions=>['fecha = ? and moneda_id=?', fecha, moneda.id])
			if @cambio == nil
				raise "No existe el tipo de '#{moneda.nombre}' para la fecha '#{fecha}'"
			else
				monto*@cambio.precio_venta
			end
		end
	end
	
	def self.cambiar(monto, de_moneda, a_moneda, fecha)
		if de_moneda == a_moneda
			monto
		else
			(a_moneda.id == 1 ? TipoCambio.vender(monto, a_moneda, fecha) : TipoCambio.comprar(monto, a_moneda, fecha))			
		end				
	end	
end
